A conventional search engine, such as the Google™ search engine, returns a result set in response to a search query submitted by a user. The search engine performs the search based on a conventional search method. For example, one known method, described in an article entitled “The Anatomy of a Large-Scale Hypertextual Search Engine,” by Sergey Brin and Lawrence Page, assigns a degree of importance to a document, such as a web page, based on the link structure of the web page. The search engine ranks or sorts the individual articles or documents in the result set based on a variety of measures. For example, the search engine may rank the results based on a popularity score. The search engine generally places the most popular results at the beginning of the result set.
Unfortunately, many links that the user is not likely to see may be of interest to the user. For example, a user may enter a very broad search term that results in a large number of documents returned by the search engine. The user may examine, for example, the first ten, twenty, or thirty documents, but may be unlikely to examine results occurring after some point in the result set. For this reason, the user is unlikely to ever see a result that appears after a certain point in a result set even though the result may be the most or one of the most useful or relevant for the particular user submitting the search query.
The desired web site may not appear highly ranked in the results due to a variety of factors, such as a poor ranking function or poor or unclear queries entered by the user. For example, the user may enter a query that is unclear, that does not use “good” search terms, or that the search engine has difficulty interpreting and finding results for. Spelling errors are one example of why a search engine may not return the desired result highly ranked in the result set.
Often, when a user does not see results they want, they are able to reformulate the query such as by using a different term to find the web site for which they are searching and do so in a subsequent query. The user may replace a term in the search query with a “good” search term or may, for example, correct the spelling of a term in a subsequent search query. Conventional search engines are unable to relate multiple queries in a way that addresses the problem set out above in an effective manner.
Thus, a need exists for systems and methods for improved searching.